package com.by.course.serivce;

import com.baomidou.mybatisplus.extension.service.IService;
import com.by.course.entity.base.BaseResult;
import com.by.course.entity.base.PageResult;
import com.by.course.entity.bo.BaseUser;
import com.by.course.entity.vo.course.resp.BaseCourseResultVO;
import com.by.course.entity.vo.login.req.LoginVO;
import com.by.course.entity.vo.login.resp.LoginResultVO;
import com.by.course.entity.vo.user.req.AddBaseUserVO;
import com.by.course.entity.vo.user.req.DeleteBaseUserVO;
import com.by.course.entity.vo.user.req.GetBaseUserVO;
import com.by.course.entity.vo.user.req.UpdateBaseUserVO;
import com.by.course.entity.vo.user.resp.BaseUserResultVO;

import java.util.List;

public interface BaseUserService extends IService<BaseUser> {

    BaseResult<LoginResultVO> login(LoginVO vo);

    BaseResult<String> createUser(AddBaseUserVO vo);

    BaseResult<String> updateUser(UpdateBaseUserVO vo);

    BaseResult<String> deleteUser(DeleteBaseUserVO vo);

    BaseResult<BaseUserResultVO> getUserById(GetBaseUserVO vo);

    BaseResult<PageResult<BaseUserResultVO>> queryUsers(GetBaseUserVO vo);

    BaseResult<List<BaseCourseResultVO>> getUserCourseList(GetBaseUserVO vo);
}
